package com.sangeng.controller;

import com.sangeng.entity.LoginUser;
import com.sangeng.entity.ResponseResult;
import com.sangeng.entity.User;
import com.sangeng.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 *      自定义登录接口,需要spring security对这个接口放行,让用户访问这个接口的时候不用登录也能访问。
 *      在接口中我们通过AuthenticationManger的authenticate方法来进行用户认证,所以需要在SecurityConfig中配置
 * 把AuthenticationManager注入容器。
 *      认证成功的话要生成一个jwt,放入响应中返回,并且为了让用户下回请求时能通过jwt识别出具体是哪个用户,我们需要把用户信息
 *      存入redis,可以把用户id作为key.
 */
@RestController
public class LoginController {

    @Autowired
    private LoginService loginService;


    @RequestMapping("/user/login")
    public ResponseResult login(@RequestBody User user) {
        //登录
        return loginService.login(user);
    }

    @RequestMapping("/user/logout")
    public ResponseResult logout() {
        return loginService.logout();
    }



}
